User inputs of a touch-sensitive device

ABSTRACT

Various aspects of this disclosure are directed to displaying, by a touch-sensitive display of a computing device, at least one selectable object, and receiving, by the computing device, a user input comprising a gesture at a location of the touch-sensitive display that displays the at least one selectable object. The computing device may determine a time duration of the gesture. When the time duration of the gesture is greater than or equal to a minimum timeout value and less than or equal to a maximum timeout value, the computing device may select as user input the at least one selectable object.

BACKGROUND

A user may interact with applications executing on a computing device(e.g., a mobile phone, tablet computer, smart phone, desktop computer,or the like). For instance, a user may send one or more user inputsconfigured to cause the computing device to install, display or deletean application stored at the computing device.

In some examples, a computing device may include a touch-sensitivedisplay that may enable a user to interact with the computing device.For instance, an application executing on a computing device may cause atouch-sensitive display to display a graphical keyboard that may enablea user to register key presses by touching certain areas of thegraphical keyboard.

SUMMARY

In one example, a method includes displaying, by a touch-sensitivedisplay of a computing device, at least one selectable object, andreceiving, by the computing device, a user input comprising a gesture ata location of the touch-sensitive display that displays the at least oneselectable object. The method further comprises determining, by thecomputing device, a time duration of the gesture, and when the timeduration of the gesture is greater than or equal to a minimum timeoutvalue and less than or equal to a maximum timeout value, selecting asuser input, by the computing device, the at least one selectable object.

In one example, a computer-readable storage medium is encoded withinstructions that cause one or more processors of a computing device todisplay, by a touch-sensitive display of the computing device, at leastone selectable object, and receive a user input comprising a gesture ata location of the touch-sensitive display that displays the at least oneselectable object. The computer-readable storage medium is furtherencoded with instructions that cause the one or more processors of thecomputing device to determine a time duration of the gesture, and whenthe time duration of the gesture is greater than or equal to a minimumtimeout value and less than or equal to a maximum timeout value, selectas user input the at least one selectable object.

In one example, a computing device includes one or more processors, anda touch-sensitive display to display at least one selectable object andreceive a user input comprising a gesture at a location of thetouch-sensitive display that displays the at least one selectableobject. The computing device further includes an application installedon the computing device and operable by the one or more processors todetermine a time duration of the gesture, and when the time duration ofthe gesture is greater than or equal to a minimum timeout value and lessthan or equal to a maximum timeout value, select as user input the atleast one selectable object.

In one example, a method includes displaying, by a touch-sensitivedisplay of a computing device, at least one selectable object, andreceiving, by the computing device, a user input comprising a gesture ata location of the touch-sensitive display that displays the at least oneselectable object, wherein the gesture comprises motion of an inputunit. The method further includes detecting, by the computing device, asurface area of a portion of the touch-sensitive display that is incontact with the input unit, detecting, by the computing device, achange in the surface area of the portion of the touch-sensitive displaythat is in contact with the input unit, and when the change in thesurface area is greater than or equal to a minimum value and less thanor equal to a maximum value, selecting as user input, by the computingdevice, the at least one selectable object.

In one example, a computer-readable storage medium is encoded withinstructions that cause one or more processors of a computing device todisplay, by a touch-sensitive display of the computing device, at leastone selectable object, and receive a user input comprising a gesture ata location of the touch-sensitive display that displays the at least oneselectable object, wherein the gesture comprises motion of an inputunit. The computer-readable storage medium is further encoded withinstructions that cause the one or more processors of the computingdevice to detect a surface area of a portion of the touch-sensitivedisplay that is in contact with the input unit, detect a change in thesurface area of the portion of the touch-sensitive display that is incontact with the input unit, and when the change in the surface area isgreater than or equal to a minimum value and less than or equal to amaximum value, select as user input the at least one selectable object.

In one example, a computing device includes one or more processors, anda touch-sensitive display to display at least one selectable object andreceive a user input comprising a gesture at a location of thetouch-sensitive display that displays the at least one selectableobject, wherein the gesture comprises motion of an input unit. Thecomputing device further includes an application installed on thecomputing device and operable by the one or more processors to detect asurface area of a portion of the touch-sensitive display that is incontact with the input unit, detect a change in the surface area of theportion of the touch-sensitive display that is in contact with the inputunit, and when the change in the surface area is greater than or equalto a minimum value and less than or equal to a maximum value, select asuser input the at least one selectable object.

The details of one or more aspects of this disclosure are set forth inthe accompanying drawings and the description below. Other features,objects, and advantages of the disclosure will be apparent from thedescription and drawings, and from the claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram illustrating an example of a computing devicethat is configured to execute a keyboard application.

FIG. 2 is a block diagram illustrating further details of one example ofthe computing device shown in FIG. 1.

FIG. 3 is a block diagram illustrating an example of a keyboardapplication.

FIG. 4 is a conceptual diagram illustrating an example of a keyboardapplication.

FIG. 5 is a flow diagram illustrating an example operation of acomputing device that is configured to execute a keyboard application.

FIG. 6 is a flow diagram illustrating an example operation of acomputing device that is configured to execute a keyboard application.

DETAILED DESCRIPTION

Computing devices, such as mobile phones, tablet computers, smartphones, laptop computers, and the like, may include touch-sensitivedisplays that may enable a user to interact with the computing device bytouching certain areas of the touch-sensitive display. For example, anapplication executing on one or more processors of a computing devicemay cause a touch-sensitive display of the computing device to display agraphical keyboard. A user may provide a user input that may cause thecomputing device to select a character key of the graphical keyboard asuser input by touching the area of the touch-sensitive display thatdisplays the character key of the graphical keyboard.

In some examples, a user may wish to rest his or her fingers on thetouch-sensitive screen (e.g., on the home row keys of the graphicalkeyboard) to prevent wrist fatigue. However, with conventionaltouch-sensitive displays, when the user rests his or her fingers on thegraphical keyboard, the user may inadvertently cause the computingdevice to select one or more character keys as user input.

One or more aspects of this disclosure may enable a user to rest his orher fingers on a touch-sensitive display of a computing device withoutcausing the computing device to register undesired key presses. Forexample, an application executing on one or more processors of thecomputing device may determine that a key press includes a gestureprovided at the touch-sensitive screen that occurs within a timeduration that is less than or equal to a maximum timeout value. If thegesture does not occur within the time duration that is less than orequal to the maximum timeout value, the gesture may not be interpretedas a key press. For instance, an application executing on one or moreprocessors of a computing device may determine that a key press includesa user performing a tap gesture at a displayed character key within athreshold time period. The tap gesture may include touching a displayedcharacter key (e.g., with a finger or other input device such as astylus or pen), and releasing the character key.

The application may interpret the tap gesture as a key press if thegesture is performed within a time duration that is less than or equalto a maximum timeout value. For example, a user may touch a characterkey of the graphical keyboard with his or her finger. If the userreleases the character key within a time duration that is less than orequal to a maximum timeout value, the application may interpret thegesture as a key press. If, however, the user does not release thecharacter key within a time duration that is within a maximum timeoutvalue, the application may not interpret the gesture as a key press whenthe character key is released. As such, a user may rest his or fingerson the touch-sensitive display (e.g., the home row keys) withoutproviding a user input to cause the application executing on one or moreprocessors of the computing device to register a key press.

In some examples, an application executing on one or more processors ofa computing device may eliminate inadvertent key presses by measuring achange in a surface area corresponding to a user's finger as it isdetected by a touch-sensitive display. For example, an increase in thesize of the surface area corresponding to a user's finger in contactwith a touch-sensitive display may indicate that the force applied bythe user's finger to the character key has increased. An increase inforce may correspond to a user pressing on the touch-sensitive screen toselect the character key.

FIG. 1 is a block diagram illustrating an example of a computing devicethat is configured to execute a keyboard application. As illustrated inFIG. 1, computing device 2 may include input device 4 and output device6. Computing device 2 may be configured to execute keyboard application8, which may cause output device 6 to display graphical keyboard 10.Keyboard application 8 may further include timing module 14 and surfacearea module 16. Examples of computing device 2 may include, but are notlimited to, portable or mobile devices such as cellular phones, tabletcomputers, personal digital assistance (PDAs), portable gaming devices,portable media players, and e-book readers, as well as non-portabledevices such as desktop computers.

Input device 4, in some examples, is configured to receive input from auser through tactile, audio, or video feedback. Examples of input device4 may include a touch-sensitive and/or a presence-sensitive screen,mouse, keyboard, voice responsive system, or any other type of devicefor detecting a command from a user. In some examples, input device 4may include a touch-sensitive display, mouse, keyboard, microphone, orvideo camera.

Output device 6, in certain examples, may be configured to provideoutput to a user using tactile, audio, or video stimuli. Output device6, in one example, includes a touch-sensitive display, sound card, videographics adapter card, or any other type of device for converting asignal into an appropriate form understandable to humans or machines.Additional examples of output device 6 may include a speaker, a cathoderay tube (CRT) monitor, a liquid crystal display (LCD), an organic lightemitting diode (OLED), or any other type of device that can generateintelligible output to a user. Output device 6 may present the contentof computing device 2 to a user. For example, output device 6 maypresent a web browser, or other output that may need to be presented toa user. In some examples, output device 6 may be a touch screen that canallow a user to provide one or more user inputs to interact withcomputing device 2.

Keyboard application 8, executing on computing device 2, may provide oneor more signals to cause output device 6 (e.g., a touch-sensitivedisplay) to display graphical keyboard 10. In some examples, a user mayprovide a user input to cause computing device 2 to select one or morecharacter keys of graphical keyboard 10 by touching the area of outputdevice 6 that displays the character key of graphical keyboard 10. Forinstance, a user may perform a tap gesture at a displayed character keyof graphical keyboard 10, such as character key 9. The tap gesture mayinclude touching a displayed character key and releasing the characterkey. In some examples, as when output device 6 includes apresence-sensitive display, touching output device 6 may be accomplishedby bringing an input device such as a finger, a stylus, a pen, and thelike, within proximity of output device that is sufficiently close toenable output device 6 to detect the presence of the input device. Assuch, touching a displayed character key of graphical keyboard 10 may,in some examples, not include actual physical contact between an inputdevice and graphical keyboard 10. Similarly, in certain examples, aswhen output device 6 includes a presence-sensitive display, releasing adisplayed character key of graphical keyboard 10 may be accomplished byremoving the input device from the detectable range of output device 6.

In some examples, a user may provide user input that causes keyboardapplication 8 to refrain from selecting a character key of graphicalkeyboard 10. For instance, a user may perform a tap gesture at acharacter key of graphical keyboard 10 that may cause application 8 toconfigure computing device 2 to refrain from selecting the character keyas user input when the duration of the gesture is greater than a maximumtimeout value. For example, as illustrated in FIG. 1, a user may resthis or her fingers on home row keys 11 of graphical keyboard 10.Keyboard application 8 may determine that the user has provided one ormore user inputs to select the home row keys by touching them. The usermay release one or more of the selected keys by removing one or morefingers from the touch-sensitive display. Keyboard application 8 maydetermine that the user has performed a tap gesture at the one or morekeys that have been released. Timing module 14 of keyboard application 8may determine a duration of a gesture by comparing a first time at whichthe character is touched to a second time at which the character isreleased. In some examples, if the duration of the gesture is greaterthan a maximum timeout value (e.g., three hundred milliseconds), timingmodule 14 may cause computing device 2 to refrain from selecting thecharacter as user input. As such, a user may rest his or her fingers onthe touch-sensitive display without providing user input to register keypresses if the user does not release the character within a timeduration that is less than or equal to the maximum timeout value.

In certain examples, keyboard application 8 may eliminate inadvertentkey presses by measuring a change in a surface area corresponding to auser's finger as it is detected by a touch-sensitive display, such asoutput device 6. As one example, as illustrated in FIG. 1, a user mayrest his or her fingers on the home row character keys of graphicalkeyboard 10. Surface area module 16 of keyboard application 8 executingon one or more processors of computing device 2 may determine thesurface area corresponding to each of the user's fingers in contact withgraphical keyboard 10. Surface area module 16 may detect a change in thesurface area of each of the portions of the touch-sensitive display thatis in contact with the user's fingers (e.g., the home row keys). Surfacearea module 16 may cause computing device 2 to refrain from selectingthe character keys as user input when the change in the surface area isless than a minimum value.

For instance, a user may press down on a character key with his or herfinger. Such an increase in force may cause the surface area of theuser's finger that is in contact with the touch-sensitive display toincrease. Surface area module 16 may compare the change in surface areato a minimum value and may cause computing device 2 to select thecharacter key as user input when the change in surface area exceeds theminimum value. In contrast, when a user simply rests his or her fingerson the touch-sensitive display (e.g., resting on the home row keys ofgraphical keyboard 10), a change in detected surface area correspondingto the user's fingers in contact with graphical keyboard 10 may notexceed the minimum value. In such an example, surface area module 16executing on one or more processors of computing device 2 may causecomputing device 2 to refrain from selecting the character keys ofgraphical keyboard 10 in contact with the user's fingers as user input.As such, techniques of this disclosure may enable a user to rest his orher fingers on a touch-sensitive display, such as on the home row keysof a graphical keyboard displayed by output device 6, without causingcomputing device 2 to register unintended key presses.

FIG. 2 is a block diagram illustrating further details of one example ofthe computing device shown in FIG. 1, in accordance with one or moreaspects of the present disclosure. FIG. 2 illustrates only oneparticular example of computing device 2, and many other exampleembodiments of computing device 2 may be used in other instances.

As shown in the specific example of FIG. 2, computing device 2 includesinput device 4, output device 6, one or more processors 20, memory 22,one or more storage devices 24, and network interface 26. Computingdevice 2 also includes operating system 18, which may include modulesthat are executable by computing device 2. Computing device 2, in oneexample, further includes keyboard application 8 that is also executableby computing device 2. Keyboard application 8 includes gesturedetermination module 12, timing module 14, and surface area module 16.Each of components 8, 12, 14, 16, 18, 4, 6, 20, 22, 24, and 26 may beinterconnected (physically, communicatively, and/or operatively) forinter-component communications.

Computing device 2 may include additional components not shown in FIG. 2for clarity. For example, computing device 2 may include a battery toprovide power to the components of computing device 2. Similarly, thecomponents of computing device 2 shown in FIG. 2 may not be necessary inevery example of computing device 2. For instance computing device 2 maynot, in all examples, include network interface 26.

Although shown as separate components in FIG. 2, in some examples, oneor more of keyboard application 8, gesture determination module 12,timing module 14, and surface area module 16 may be part of the samemodule. In some examples, one or more of keyboard application 8, gesturedetermination module 12, timing module 14, surface area module 16, andone or more processors 20 may be formed in a common hardware unit. Incertain examples, one or more of keyboard application 8, gesturedetermination module 12, timing module 14, and surface area module 16may be software and/or firmware units that are executed on or operableby one or more processors 20.

One or more processors 20 may include, in certain examples, any one ormore of a microprocessor, a controller, a digital signal processor(DSP), an application specific integrated circuit (ASIC), afield-programmable gate array (FPGA), or equivalent discrete orintegrated logic circuitry. One or more processors 20 may be configuredto implement functionality and/or process instructions for executionwithin computing device 2. For example, one or more processors 20 may becapable of processing instructions stored in memory 22 or instructionsstored in one or more storage devices 24.

Memory 22, in one example, is configured to store information withincomputing device 2 during operation. Memory 22, in some examples, isdescribed as a computer-readable storage medium. In some examples,memory 22 is a temporary memory, meaning that a primary purpose ofmemory 22 is not long-term storage. Memory 22, in some examples, isdescribed as a volatile memory, meaning that memory 22 does not maintainstored contents when the computer is turned off. Examples of volatilememories include random access memories (RAM), dynamic random accessmemories (DRAM), static random access memories (SRAM), and other formsof volatile memories known in the art. In some examples, memory 22 isused to store program instructions for execution by one or moreprocessors 20. Memory 22, in one example, is used by software orapplications running on computing device 2 (e.g., keyboard application8) to temporarily store information during program execution.

One or more storage devices 24, in some examples, also include one ormore computer-readable storage media. One or more storage devices 24 maybe configured to store larger amounts of information than memory 22. Oneor more storage devices 24 may further be configured for long-termstorage of information. In some examples, one or more storage devices 24include non-volatile storage elements. Examples of such non-volatilestorage elements include magnetic hard discs, optical discs, floppydiscs, flash memories, or forms of electrically programmable memories(EPROM) or electrically erasable and programmable (EEPROM) memories.

Computing device 2, in some examples, also includes network interface26. Computing device 2, in one example, utilizes network interface 26 tocommunicate with external devices via one or more networks, such as oneor more wireless networks. Network interface 26 may be a networkinterface card, such as an Ethernet card, an optical transceiver, aradio frequency transceiver, or any other type of device that can sendand receive information. Other examples of such network interfaces mayinclude Bluetooth, 3G and WiFi radios in mobile computing devices aswell as USB. In some examples, computing device 2 utilizes networkinterface 26 to wirelessly communicate with an external device (notshown) such as a server, mobile phone, or other networked computingdevice.

Computing device 2 may further include keyboard application 8,executable by computing device 2, such as by one or more processors 20.Keyboard application 8 may include gesture determination module 12,timing module 14, and surface are module 16. Gesture determinationmodule 12 may receive one or more inputs, such as from input device 4 oroutput device 6 (e.g., a touch sensitive display), and may determinethat the one or more inputs comprise a gesture. Examples of gestures mayinclude, but are not limited to, tap gestures, sliding gestures,circular gestures, and the like.

As one example, keyboard application 8, executing on one or moreprocessors 20, may cause a touch-sensitive display of computing device2, such as output device 6, to display a graphical keyboard. Gesturedetermination module 12 may receive an input from output device 6indicating that a displayed character of the graphical keyboard has beentouched, such as by a finger, stylus, pen, or the like. Gesturedetermination module 12 may determine that a tap gesture has beenperformed when the selected character has been released. As anotherexample, after receiving an input from output device 6 indicating that adisplayed character has been touched, gesture determination module 12may determine that a sliding gesture has been performed when theselected character is released by sliding the input device off theselected character while maintaining contact with output device 6.

Timing module 14 may determine the duration of the gesture. For example,gesture determination module 12 may determine when a gesture has begun,such as when output device 6 indicates an input on the touch-sensitivedisplay. In response, timing module 14 may begin to determine a starttime of the gesture. At a later time, gesture determination module 12may receive an indication from output device 6 that the gesture hasended, such as when a displayed character of a graphical keyboard hasbeen released. In response, timing, module 14 may determine an end timeof the gesture. Timing module 14 may then determine a time duration ofthe gesture as the time interval between the start time of the gestureand the end time of the gesture.

In some examples, gesture determination module 12 may indicate thatmultiple gestures are being performed at once. For instance, a user mayprovide user inputs that include touching and releasing multipledisplayed characters at the same time. In such examples, gesturedetermination module 12 may track the multiple gestures individually,and timing module 14 may determine the durations of each individualgesture.

Surface area module 16 may determine a surface area of a portion of atouch-sensitive display (e.g., output device 6) that is in contact withan input unit. For example a user may touch output device 6 with afinger, stylus, or other input device. In some examples, output device 6may indicate a radius of a contact area between the input device andoutput device 6. For instance, the contact area may be an area of thetouch-sensitive display where the detected capacitance of thetouch-sensitive display changes responsive to the surface area of theinput unit (e.g., a finger). In such examples, surface area module 16may determine the surface area of the portion of output device 6 that isin contact with the input unit using the radius indicated by outputdevice 6. In certain examples, output device 6 may indicate a number ofpixels or other units of known area of output device 6 that are incontact with the input unit. Surface area module 16 may determine thesurface area of the portion of output device 6 that is in contact withthe input unit, such as by summing the number of units of known area.

Surface area module 16 may determine a change in surface area of theportion of output device 6 that is in contact with the input unit. Forinstance, a user may rest his or her fingers on one or more displayedcharacters of a graphical keyboard displayed by output device 6, and maypress down with one or more fingers. The accompanying increase in forcemay cause the surface area of the user's fingers that are in contactwith output device 6 to increase. In another example, a user may resthis or her fingers on the touch-sensitive display, and may merely shiftor roll his or her fingers through normal body movements. In such anexample, the surface area of the user's fingers that are in contact withoutput device 6 may increase or decrease.

Surface area module 16 may compare the detected change in the surfacearea of the portion of output device 6 that is in contact with the inputunit to a minimum value and a maximum value. In some examples, when thechange in the surface area is less than the minimum value, surface areamodule 16 may configure keyboard application 8 to cause computing device2 to refrain from selecting as user input the one or more displayedcharacter keys that are in contact with the input unit. In certainexamples, when the change in the surface area is greater than themaximum value, surface area module 16 may configure keyboard application8 to cause computing device 2 to refrain from selecting as user inputthe one or more displayed character keys that are in contact with theinput unit. In some examples, when the change in the surface area isgreater than or equal to the minimum value and less than or equal to themaximum value, surface area module 16 may configure keyboard application8 to cause computing device 2 to select as user input the one or moredisplayed character keys that are in contact with the input unit. Themaximum and minimum values may include an absolute change in surfacearea (e.g., a change of 2 square millimeters), a percentage of change insurface area (e.g., a ten percent change in surface area), or othertypes of measurements that can detect a relative change in surface area.In certain examples, surface area module 16 receive an input from outputdevice 6 indicating a change in the radius of a contact area between theinput device and output device 6, and may determine whether the selectedobject of the output device should be selected as user input using thechange in radius.

FIG. 3 is a block diagram illustrating an example of a keyboardapplication. For purposes of illustration, the example keyboardapplication is described below within the context of computing device 2of FIG. 1 and FIG. 2. Keyboard application 8, executing on one or moreprocessors 20, may provide one or more signals to cause atouch-sensitive display, such as output device 6, to display graphicalkeyboard 30. As illustrated in FIG. 3, a user may perform a gesture,such as a tap gesture, at a location of the touch-sensitive display(e.g., output device 6) that displays one or more of the characters ofthe graphical keyboard. A tap gesture may be defined as touching thetouch-sensitive display at one or more of the displayed characters withan input unit (a finger in the illustrated example) and releasing thecharacter by removing the input unit from the touch-sensitive display.In certain examples, a user may perform a sliding gesture (notillustrated), such as by releasing the character by removing the inputunit from the selected character while maintaining contact between theinput unit and the touch-sensitive display.

In the illustrated example of FIG. 3, a tap gesture begins with gesture32, where a user begins to initiate touching graphical keyboard 30 atthe displayed character “k”. At gesture 34, the user has made contactwith the displayed letter “k” of graphical keyboard 30. Gesturedetermination module 12 may determine that a gesture, such as theillustrated tap gesture, has begun when output device 6 provides one ormore signals indicating that an input device has made contact with thetouch-sensitive display. In certain examples, as when output device 6includes a presence-sensitive display, gesture determination module 12may determine that a gesture has begun when output device 6 provides oneor more signals indicating that an input device has come into adetectable range of the presence-sensitive device.

In the example of FIG. 3, timing module 14 may begin to determine theduration of the gesture at gesture 34 when gesture determination module12 indicates that a gesture has begun. For instance, timing module 14may cause computing device 2 to store a start time at a memory or otherstorage device of computing device 2, such as at one or more of memory22 or one or more storage devices 24. At gesture 36, a user has releasedthe displayed character “k” by removing his or her finger from thetouch-sensitive display. Gesture determination module 12 may determinethat a tap gesture has been performed because the input unit (a fingerin the illustrated example) was removed from the selected character byremoving the input unit from the touch-sensitive display. Gesturedetermination module 14 may cause computing device 2 to store an endtime, such as at one or more of memory 22 or one or more storage devices24. In certain examples, gesture determination module 14 may determinethat a sliding gesture has been performed when the selected character isreleased by removing the input unit from the selected character whilemaintaining contact between the input unit and the touch-sensitivedisplay (not illustrated). Timing module 14 may determine the durationof the gesture by determining the time interval between when start timeof the gesture (e.g., gesture 34) and the end time of the gesture (e.g.,gesture 36).

Timing module 14 may compare the duration of the gesture to a maximumtimeout value, and may cause computing device 2 to refrain fromselecting as user input the selected character when the duration of thegesture is greater than the maximum timeout value. For example, a usermay rest his or her fingers on the home row keys of graphical keyboard30. If the user removes one or more of his or her fingers from the homerow keys, output device 6 may provide one or more signals to gesturedetermination module 12 indicating that one or more input devices (e.g.,one or more of the user's fingers) have been removed from output device6. Gesture determination module 12 may determine that one or more tapgestures have been performed at the home row keys. Similarly, a user mayslide one or more of his or her fingers off the home row keys whilemaintaining contact between graphical keyboard 30 and the user'sfingers. In such an example, gesture determination module 12 maydetermine that one or more sliding gestures have been performed at thehome row keys. In certain examples, timing module 14 may cause computingdevice 2 to refrain from selecting as user input the one or moreselected characters when the duration of the gesture is greater than orequal to the maximum timeout value (e.g., three hundred milliseconds).In some examples, timing module 14 may cause computing device 2 toselect as user input the selected character when the duration of thegesture is less than or equal to the maximum timeout value.

In some examples, timing module 14 may compare the duration of thegesture to a minimum timeout value, and may cause computing device 2 torefrain from selecting as user input the selected character when theduration of the gesture is less than the minimum timeout value. Forexample, a user may inadvertently touch graphical keyboard 30 with afinger or other input unit. In response, output device 6 may provide oneor more signals that may be received by gesture determination module 12indicating that a tap gesture has been performed. However, in such anexample, the time duration of the gesture may be very brief. Timingmodule 14 may cause computing device 2 to refrain from selecting theselected character as user input when the duration of the gesture isless than a minimum timeout value (e.g., 100 milliseconds). As anotherexample, timing module 14 may cause computing device 2 to select as userinput the selected character when the duration of the gesture is greaterthan the minimum timeout value.

In some examples, timing module 14 may compare the duration of thegesture to both a minimum timeout value and a maximum timeout value. Insuch an example, timing module 14 may cause computing device 2 torefrain from selecting as user input the selected character when theduration of the gesture is less than the minimum timeout value orgreater than the maximum timeout value. In another example, timingmodule 14 may cause computing device 2 to select as user input theselected character when the duration of the gesture is greater than orequal to the minimum timeout value and less than or equal to the maximumtimeout value. As such, the user may rest his or her fingers on thetouch-sensitive display (e.g., on the home row keys), such as to preventwrist fatigue, without registering unintended key presses.

The minimum and maximum timeout values (e.g., the minimum timeout valuerequired to register a user input and the maximum timeout value withinwhich a gesture must be performed to register a user input) may be apreconfigured values. For instance, the minimum timeout value may bepreconfigured as a value of one hundred milliseconds, and the maximumtimeout value may be preconfigured as a value of three hundredmilliseconds. In some examples, the minimum and maximum timeout valuesmay be configured by a user. For instance, keyboard application 8 maycause output device 6 to display a user interface enabling a user toincrease or decrease one or more of the minimum and maximum timeoutvalues.

FIG. 4 is a conceptual diagram illustrating an example of a keyboardapplication, in accordance with one or more aspects of the presentdisclosure. For purposes of illustration, the example keyboardapplication is described below within the context of computing device 2of FIG. 1 and FIG. 2. Keyboard application 8, executing on one or moreprocessors 20, may cause a touch-sensitive display, such as outputdevice 6, to display graphical keyboard 40. For purposes ofillustration, graphical keyboard 40 illustrated in FIG. 4 includes onlya portion of a standard keyboard. As illustrated in FIG. 4, a user mayprovide a user input comprising a gesture at one or more of thedisplayed characters of graphical keyboard 40 (e.g., the “H” character)using an input unit (a finger in the illustrated example). Surface areamodule 16 may determine a surface area of a portion of thetouch-sensitive display (e.g., output device 6) that is in contact withthe input unit. In the example of FIG. 4, surface area module 16 maydetermine the surface area of the portion of output device 6 that isunderneath the user's finger and in contact with output device 6.

A user may provide an input comprising a gesture, such as by providing amotion of the input unit. For instance, a user may move his or herfinger by pressing down on the displayed character of graphical keyboard40. Such a motion may correspond to a user pressing down to select thedisplayed character. The accompanying increase in pressure may cause thesurface area of the user's finger that is in contact with output device6 to increase. In the example of FIG. 4, surface area change 42illustrates an example change in surface area in response to anincreased pressure of the user's motion of pressing down on thedisplayed character “H” with the user's finger. Surface area module 16may determine the change in the surface area of the portion of thetouch-sensitive display (e.g., surface area change 42), and may comparethe change in the surface area to one or more of a minimum or maximumvalue.

In some examples, surface area module 16 may compare the change in thesurface area to a minimum value, and may cause computing device 2 torefrain from selecting as user input the selected character when thechange in the surface area is less than the minimum value. As oneexample, an increase in the detected surface area may correspond to auser pressing down with an input unit, such as a finger, to select adisplayed character. However, a user may apply an increased pressurewithout intending to select a character. For instance, a user mayunconsciously apply slightly more pressure to his or her fingers as theuser shifts body posture. Such increases in pressure may cause anincrease in the surface area between the user's fingers and thetouch-sensitive display, which may be interpreted as a gesture bygesture determination module 12. Similarly, a user may unintentionallyincrease the surface area in contact between the touch-sensitive displayand the user's fingers by rolling his or her fingers or otherwiserepositioning his or her fingers on the touch-sensitive display. Surfacearea module 16 may help prevent unintended key presses by comparing theincreased surface area to a minimum value, and causing computing device2 to select the gesture as user input only if the increased surface areais greater than or equal to the minimum value (e.g., two squaremillimeters). In such case, it is more likely that the increased surfacearea is due to a deliberate gesture of the user.

In certain examples, surface area module 16 may compare the change inthe surface area to a maximum value, and may cause computing device 2 torefrain from selecting as user input the selected character when thechange in the surface area is greater than the maximum value. Forinstance, a user may touch a displayed character of graphical keyboard40 with his or her finger. Surface area module 16 may receive one ormore signals from output device 6 indicating a radius of the touchpoint, and may calculate a surface area of the touch point using the oneor more received signals indicating the radius. However, the user may,in some examples, increase the surface area of the touch point byplacing the user's wrist or palm on the graphical keyboard. In suchcase, surface area module 16 may cause computing device 2 to refrainfrom selecting the selected character as user input when the change inthe surface area is greater than a maximum value. Such a determinationmay prevent erroneous users inputs, in that surface area module 16 maydetermine that a change in surface area greater than the maximum valuemay not have been caused by a user pressing down with a finger or othertypical input device, and may determine that the selection is not adesired user input.

In some examples, surface area module 16 may compare the change insurface area to the minimum value and maximum value, and may causecomputing device 2 to select as user input the selected character whenthe change in surface area is greater than or equal to the minimum valueand less than or equal to the maximum value. The minimum and maximumvalues may be preconfigured values. For instance, the minimum value maybe preconfigured as a value of two square millimeters, and the maximumtimeout value may be preconfigured as a value of ten square millimeters.In some examples, the minimum and maximum values may be configured by auser. For instance, keyboard application 8 may cause output device 6 todisplay a user interface enabling a user to increase or decrease one ormore of the minimum and maximum values.

In certain examples, surface area module 16 may cause computing device 2to refrain from selecting as user input a selected character key ofgraphical keyboard 40 when a detected change in surface not greater thanor equal to a minimum value and less than a maximum value within a timeduration that is greater than or equal to a minimum timeout value andless than or equal to a maximum timeout value. As one example, surfacearea module 16 may receive from output device 6 one or more signalsindicating a radius of a touch point, and may calculate the surface areaof the touch point using the radius. Surface area module 16 may causetiming module 14 to determine a time that the touch point wasregistered. Surface area module 16 may determine a change in thedetected surface area, and may compare the surface area change tominimum and maximum values. Surface area module 16 may determine thatthe change in the surface area is greater than or equal to the minimumvalue and less than or equal to the maximum value, and may cause timingmodule 14 to determine a time that the change in the surface areasatisfied the surface area condition (e.g., the time that the change inthe surface area was determined to be greater than or equal to theminimum value and less than or equal to the maximum value).

Surface area module 16 may determine the duration of the gesture (i.e.,pressing down on the displayed character to select the displayedcharacter), and may compare the duration of the gesture to minimum andmaximum timeout values. In some examples, when the duration of thegesture is greater than the maximum timeout value, surface area module16 may cause computing device 2 to refrain from selecting the gesture asuser input. For instance, a user may have applied more pressure to hisor her fingers, causing a greater surface area to be detected by surfacearea module 16. However, the user may have done so over a relativelylong period of time, such that the gesture was not intended as userinput. In such an example, surface area module 16 may help to eliminateinadvertent key presses by comparing the duration of the gesture to thethreshold time value. Similarly, when the duration of the gesture isless than the minimum timeout value, surface area module 16 may causecomputing device 2 to refrain from selecting the gesture as user input.

In other examples, surface area module 16 may compare the duration ofthe gesture to the minimum timeout value and maximum timeout value, andmay cause computing device 2 to select the gesture as user input whenthe duration of the gesture is greater than or equal to the minimumtimeout value and less than or equal to the maximum timeout value. Assuch, surface area module 16 may cause computing device 2 to refrainfrom selecting as user input a gesture comprising a change in surfacearea of output device 6 that is in contact with an input unit when thechange in surface area is less than a minimum surface area value orgreater than a maximum surface area value. When the change in surfacearea is greater than or equal to the minimum surface area value and lessthan or equal to the maximum value, surface area module 16 may causecomputing device 2 to refrain from selecting the gesture as user inputwhen the time duration of the gesture is less than a minimum timeoutvalue or greater than a maximum timeout value. When the time duration ofthe gesture is greater than or equal to the minimum timeout value andless than or equal to the maximum timeout value, surface area module 16may cause computing device 2 to select the gesture as user input.

In certain examples, when surface area module 16 determines that thechange in surface area of a gesture comprising a change in surface areaof an area of output device 6 that is in contact with an input unit isgreater than or equal to a minimum value and less than or equal to amaximum value, but the time duration of the gesture less than a minimumtimeout value or greater than a maximum timeout value, surface areamodule 16 may use the currently detected surface area of output device 6that is in contact with the input unit as a new, resting surface areafor future comparisons. For instance, a user may increase the surfacearea of the user's fingers that are in contact with graphical keyboard40 by more than an amount of surface area that is greater than a minimumsurface area value over a period of time that is greater than a maximumtimeout value, such as by shifting body posture causing an increasedpressure on output device 6. In such an example, surface area module 16may cause computing device 2 to refrain from selecting the gesture asuser input, and may use the newly detected surface area of output device6 that is in contact with the input unit as the basis of comparison forfuture gestures.

In certain examples, one or more of the minimum or maximum timeoutvalues may be the same or different values. For instance, both minimumand maximum timeout values may be utilized. Similarly, both minimum andmaximum surface area values may be utilized. One or more of the minimumtimeout value, maximum timeout value, minimum surface area value, ormaximum surface area value may be preconfigured, may be configurable bya user (e.g., using a user interface presented by output device 8), orboth.

Surface area module 16 may, in some examples, cause computing device 2to as user input a gesture including a change in surface area detectedbetween output device 6 and an input unit when surface area module 16receives one or more signals from output device 6 indicating an increasein the surface area detected between output device 6 and the input unitfollowed by a decrease in the surface area detected between outputdevice 6 and the input unit. For instance, a user may press down on adisplayed character of graphical keyboard 40 with an input unit (e.g., afinger) to select the displayed character, and may decrease the pressureapplied by the input unit after making the selection (e.g., as whenpressing down on a key of a traditional keyboard to select a character).Surface area module 16 may determine that a gesture has been performedto select the displayed character when surface area module 16 receivesone or more signals from output device 6 indicating an increase insurface area between output device 6 and the input unit that is greaterthan a threshold value followed by one or more signals from outputdevice 6 indicating a decrease in surface area between output device 6and the input unit that is greater than a threshold value. Surface areamodule 16 may cause computing device 2 to select such a gesture as userinput. In some examples, the two threshold values may be the same ordifferent values. Similarly, the threshold values may be preconfigured,configurable through a user interface presented by output device 6, orboth.

The examples described above have been described with respect to agraphical keyboard displayed by a touch-sensitive or presence-sensitivedisplay. However, it should be recognized that the examples describedabove may be applied to any selectable objects displayed by suchdisplays. For example, computing device 2 may include one or moreapplications, executable by one or more processors 20, that cause outputdevice 6 to display one or more selectable objects. Examples of suchselectable objects include, but are not limited to, virtual buttons,hyperlinks, drop-down list controls, taskbars, menu bars, and the like.Computing device 2 may implement the examples described above withrespect to keyboard application 8 to enable a user to rest one or moreinput devices (e.g., one or more of the user's fingers, a stylus, a pen,and the like) on output device 6 without causing computing device 2 toregister unintended selections of the selectable objects. For instance,computing device 2 may cause one or more processors to executeinstructions comprising a web browsing application. The instruction maycause output device 6 to display one or more selectable objects, such asvirtual buttons and hyperlinks. Computing device 2 may utilize theexamples described above to enable a user to rest an input device onoutput device 6 without causing computing device 2 to register anunintended key press (e.g., using a gesture determination module, atiming module, a surface area module, or any combination thereof). Assuch, techniques of this disclosure may enable a user of computingdevice 2 to rest one or more input devices on the touch-sensitivedisplay without unintentionally causing computing device 2 to select oneor more selectable objects displayed by the touch-sensitive display.

FIG. 5 is a flow diagram illustrating an example operation of acomputing device that is configured to execute a keyboard application.For example, the process illustrated in FIG. 5 may be performed bycomputing device 2 shown in FIG. 1 and/or 2.

The process of FIG. 5 includes displaying, by a touch-sensitive displayof a computing device, at least one selectable object (50). Forinstance, keyboard application 8 may cause a touch-sensitive displaysuch as output device 6 to display a graphical keyboard including atleast one selectable character key. The process further includesreceiving, by the computing device, a user input comprising a gesture ata location of the touch-sensitive display that displays the at least oneselectable object (52). For example, output device 6 may receive one ormore user inputs including a touch input from an input device (e.g., oneor more of a user's fingers). Gesture determination module 12 mayreceive one or more signals from output device 6 indicating that thetouch input has been received, and may determine that the inputcomprises a gesture, such as a tap gesture (i.e., selecting andreleasing the displayed character), a sliding gesture (i.e., releasingthe selected character while maintaining contact with output device 6),or a gesture that includes pressing down on output device 6 to select adisplayed character.

The process further includes determining, by the computing device, atime duration of the gesture (54). As one example, gesture determinationmodule 12 may cause timing module 14 to determine a time correspondingto the beginning of the gesture (e.g., a time when the displayedcharacter was touched) and a time corresponding to the end of thegesture (e.g., a time when the displayed character was released). Timingmodule 14 may determine the time duration of the gesture by comparingthe two times.

The process further includes, when the time duration of the gesture isgreater than or equal to a minimum timeout value and less than or equalto a maximum timeout value, selecting as user input the at least oneselectable object (56). In some examples, when the time duration is lessthan the minimum timeout value, timing module 14 may cause computingdevice 2 to refrain from selecting as user input the at least oneselectable object. As an example, a user may quickly touch output device6 with a finger or other input device, and in so doing may provide auser input that may cause gesture determination module 12 to receive oneor more signals from output device 6 indicating that a tap gesture orsliding gesture has been performed. Gesture determination module 12 maycause timing module 14 to determine a time duration of the gesture, andto compare the time duration of the gesture to a minimum timeout value.When the time duration of the gesture is less than the minimum timeoutvalue, timing module 14 may cause computing device 2 to refrain fromselecting the gesture as user input.

In some examples, when the time duration of the gesture is greater thana maximum timeout value, timing module 14 may cause computing device 2to refrain from selecting as user input the at least one selectableobject. For instance, a user may rest his or her fingers on the home rowkeys of a graphical keyboard displayed by output device 6, and may laterremove one or more fingers from the home row keys. Gesture determinationmodule 12 may receive one or more signals from output device 6indicating that the user has performed a gesture, such as a tap gesture.Gesture determination module 12 may cause timing module 14 to determinea time duration of the gesture, and to compare the time duration of thegesture to a maximum timeout value. When the time duration of thegesture is greater than the maximum timeout value, timing module 14 maycause computing device 2 to refrain from selecting the gesture as userinput.

FIG. 6 is a flow diagram illustrating an example operation of acomputing device that is configured to execute a keyboard application.For example, the process illustrated in FIG. 6 may be performed bycomputing device 2 shown in FIG. 1 and/or 2. The process of FIG. 6includes displaying, by a touch-sensitive display of a computing device,at least one selectable object (60). For instance, keyboard application8 may cause a touch-sensitive display such as output device 6 to displaya graphical keyboard including at least one selectable character key. Insome examples, one or more other applications, executing on one or moreprocessors 20, may cause output device 6 to display at least oneselectable object, such as at least one of a hyperlink, virtual button,dropdown list control, taskbar, and the like.

The process further includes receiving, by the computing device, a userinput comprising a gesture at a location of the touch-sensitive displaythat displays the at least one selectable object, wherein the gesturecomprises a motion of an input unit (62). For example, a user may touchone or more of the selectable objects with an input unit (e.g., afinger, a pen, a stylus, and the like), and may move the input unit bypressing down with the input unit. Gesture determination module 12 mayreceive one or more signals from output device 6 indicating that agesture, such as tap gesture, a sliding gesture, or a gesture includingpressing down with an input unit to select a selectable object has beenperformed.

The process further includes detecting, by the computing device, asurface area of a portion of the touch-sensitive display that is incontact with the input unit (64). As an example, a user may touch aportion of a touch-sensitive display (e.g., output device 6) with aninput unit, such as a finger. Surface area module 16 may receive one ormore signals from output device 6 indicating a radius of the surfacearea of output device 6 that is in contact with the input unit and maydetermine the surface area based on the radius. The process furtherincludes detecting, by the computing device, a change in the surfacearea of the portion of the touch-sensitive display that is in contactwith the input unit (66). For instance, a user may touch output device 6with an input unit, such as one or more of his or her fingers. The usermay subsequently push down with one or more fingers (e.g., to select adisplayed selectable object such as a character key of a graphicalkeyboard). The accompanying increase in pressure caused by the userpressing down may cause the surface area of the user's finger that is incontact with output device 6 to increase. Surface area module 16 mayreceive one or more signals from output device 6 indicating a new radiusof the touch point, and may determine a change in the surface area bycomparing the two surface area values.

The process further includes when the change in the surface area isgreater than or equal to a minimum value and less than or equal to amaximum value, selecting as user input the at least one selectableobject (68).

For example, surface area module 16 may receive one or more signals fromoutput device 6 indicating a change in the surface area of output device6 that is in contact with the input unit, and may compare the change inthe surface area to a minimum value. When the change in the surface areais less than the minimum value, surface area module 16 may causecomputing device 2 to refrain from selecting the gesture as user input.Similarly, surface area module 16 may compare the change in the surfacearea to a maximum surface area value, and may cause computing device 2to refrain from selecting the gesture as user input when the change insurface area is greater than the maximum surface area value.

In some examples, the process further includes refraining from selectingas user input the at least one selectable object when a gestureincluding a change in the surface area of the touch-sensitive displaythat is in contact with the input unit does not complete within a timeduration that is greater than or equal to a minimum timeout value andless than or equal to a maximum timeout value. For instance, a user mayincrease the pressure applied to output device 6 by one or more of theuser's fingers over a relatively long period of time. Such increase inpressure may be due to factors such as a change in body posture, achange in the position of the user's wrists or hands, or one or moreother factors. The increase in pressure may result in an increasedsurface area of the user's fingers that are in contact with outputdevice 6. Surface area module 16 may receive one or more signals fromoutput device 6 indicating the change in the surface area of outputdevice 6 that is in contact with the input unit, and may determine thatthe change in surface area is greater than or equal to a minimum valueand less than or equal to a maximum value. Surface area module 16 maycause timing module 14 to determine the duration of the gesture (i.e.,the time duration from the time of the initial touch to the time whenthe surface area of output device 6 that is in contact with the inputunit is determined to be greater than or equal to the minimum value andless than or equal to the maximum value). Timing module 14 may causecomputing device 2 to refrain from selecting the gesture as user inputwhen the time duration of the gesture is greater than or equal to amaximum timeout value or less than or equal to a minimum timeout value.In some examples, surface area module 16 may receive one or more signalsfrom output device 6 indicating a surface area of output device that isin contact with the input unit, and may use the currently determinedsurface area of output device 6 that is in contact with the input unit(e.g., the currently determined surface area of output device 6 that isin contact with one or more of the user's fingers) as the new, baselinesurface area for future comparisons.

In certain examples, the process further includes detecting an increasein the surface area of the portion of the touch-sensitive display thatis in contact with the input unit followed by a decrease in the surfacearea of the portion of the touch-sensitive display that is in contactwith the input unit. For instance, a user may touch a touch-sensitivedisplay (e.g., output device 6) with an input unit, such as a finger.The user may provide a user input comprising a gesture to select adisplayed selectable object that includes pressing down with the inputunit followed by releasing pressure applied by the input unit (e.g., aswhen pressing down with a finger on a traditional keyboard to select acharacter key). The increase and decrease in pressure may cause acorresponding increase and decrease in surface area of thetouch-sensitive display that is in contact with the input unit.

Surface area module 16 may receive one or more signals from thetouch-sensitive display (e.g., output device 6) indicating the increaseand decrease in surface areas, and may compare one or more of theincrease and decrease in surface areas to one or more surface areavalues (e.g., one or more of a minimum value or a maximum value).Surface area module 16 may cause computing device 2 to select thegesture as user input when one or more of the increase and decrease insurface areas are greater than a minimum value and less than a maximumvalue.

The techniques described in this disclosure may be implemented, at leastin part, in hardware, software, firmware, or any combination thereof.For example, various aspects of the described techniques may beimplemented within one or more processors, including one or moremicroprocessors, digital signal processors (DSPs), application specificintegrated circuits (ASICs), field programmable gate arrays (FPGAs), orany other equivalent integrated or discrete logic circuitry, as well asany combinations of such components. The term “processor” or “processingcircuitry” may generally refer to any of the foregoing logic circuitry,alone or in combination with other logic circuitry, or any otherequivalent circuitry. A control unit including hardware may also performone or more of the techniques of this disclosure.

Such hardware, software, and firmware may be implemented within the samedevice or within separate devices to support the various techniquesdescribed in this disclosure. In addition, any of the described units,modules or components may be implemented together or separately asdiscrete but interoperable logic devices. Depiction of differentfeatures as modules or units is intended to highlight differentfunctional aspects and does not necessarily imply that such modules orunits must be realized by separate hardware, firmware, or softwarecomponents. Rather, functionality associated with one or more modules orunits may be performed by separate hardware, firmware, or softwarecomponents, or integrated within common or separate hardware, firmware,or software components.

The techniques described in this disclosure may also be embodied orencoded in an article of manufacture including a computer-readablestorage medium encoded with instructions. Instructions embedded orencoded in an article of manufacture including a computer-readablestorage medium encoded, may cause one or more programmable processors,or other processors, to implement one or more of the techniquesdescribed herein, such as when instructions included or encoded in thecomputer-readable storage medium are executed by the one or moreprocessors. Computer readable storage media may include random accessmemory (RAM), read only memory (ROM), programmable read only memory(PROM), erasable programmable read only memory (EPROM), electricallyerasable programmable read only memory (EEPROM), flash memory, a harddisk, a compact disc ROM (CD-ROM), a floppy disk, a cassette, magneticmedia, optical media, or other computer readable media.

In some examples, a computer-readable storage medium may comprisenon-transitory medium. The term “non-transitory” may indicate that thestorage medium is not embodied in a carrier wave or a propagated signal.In certain examples, a non-transitory storage medium may store data thatcan, over time, change (e.g., in RAM or cache).

Various aspects of the disclosure have been described. These and otherembodiments are within the scope of the following claims.

1. A method comprising: displaying, by a touch-sensitive display of acomputing device, at least one selectable object; receiving, by thecomputing device, a user input comprising a gesture at a location of thetouch-sensitive display that displays the at least one selectableobject; determining, by the computing device, a time duration of thegesture; and when the time duration of the gesture is greater than orequal to a minimum timeout value and less than or equal to a maximumtimeout value, selecting as user input, by the computing device, the atleast one selectable object.
 2. The method of claim 1, furthercomprising: when the time duration is less than the minimum timeoutvalue, refraining from selecting as user input, by the computing device,the at least one selectable object.
 3. The method of claim 1, furthercomprising: when the time duration is greater than the maximum timeoutvalue, refraining from selecting as user input, by the computing device,the at least one selectable object.
 4. The method of claim 1, whereinthe gesture comprises a motion of an input unit.
 5. The method of claim4, wherein the time duration of the gesture comprises a time period fromthe start of the motion of the input unit to the end of the motion ofthe input unit.
 6. The method of claim 1, wherein the gesture comprisesa tap gesture including: touching, with an input unit, thetouch-sensitive display at the location of the touch-sensitive displaythat displays the at least one selectable object to select the at leastone selectable object; and releasing the at least one selectable objectby removing the input unit from the touch-sensitive display.
 7. Themethod of claim 6, wherein touching the touch-sensitive display at thelocation of the touch-sensitive display that displays that at least oneselectable object starts the tap gesture, and wherein releasing the atleast one selectable object by removing the input unit from thetouch-sensitive display ends the tap gesture.
 8. The method of claim 7,wherein a duration of the tap gesture comprises a time period from thestart of the tap gesture to the end of the tap gesture.
 9. The method ofclaim 1, wherein the gesture comprises a sliding gesture including:touching, with an input unit, the touch-sensitive display at thelocation of the touch-sensitive display that displays the at least oneselectable object to select the at least one selectable object; andreleasing the at least one selectable object by removing the input unitfrom the location of the touch-sensitive display that displays the atleast one selectable object and maintaining contact between the inputunit and the touch-sensitive display.
 10. The method of claim 9, whereintouching the touch-sensitive display at the location of thetouch-sensitive display that displays the at least one selectable objectstarts the sliding gesture, and wherein releasing the at least oneselectable object by removing the input unit from the location of thetouch-sensitive display that displays the at least one selectable objectand maintaining contact between the input unit and the touch-sensitivedisplay ends the sliding gesture.
 11. The method of claim 10, wherein aduration of the sliding gesture comprises a time period from the startof the sliding gesture to the end of the sliding gesture.
 12. The methodof claim 1, wherein the at least one object is included in a graphicalkeyboard.
 13. The method of claim 1, wherein the at least one objectcomprises at least one of a character key or a hyperlink.
 14. Acomputer-readable storage medium encoded with instructions that causeone or more processors of a computing device to: display, by atouch-sensitive display of the computing device, at least one selectableobject; receive a user input comprising a gesture at a location of thetouch-sensitive display that displays the at least one selectableobject; determine a time duration of the gesture; and when the timeduration of the gesture is greater than or equal to a minimum timeoutvalue and less than or equal to a maximum timeout value, select as userinput the at least one selectable object.
 15. A computing device,comprising: one or more processors; a touch-sensitive display to displayat least one selectable object and receive a user input comprising agesture at a location of the touch-sensitive display that displays theat least one selectable object; and an application installed on thecomputing device and operable by the one or more processors to determinea time duration of the gesture, and when the time duration of thegesture is greater than or equal to a minimum timeout value and lessthan or equal to a maximum timeout value, select as user input the atleast one selectable object.
 16. A method comprising: displaying, by atouch-sensitive display of a computing device, at least one selectableobject; receiving, by the computing device, a user input comprising agesture at a location of the touch-sensitive display that displays theat least one selectable object, wherein the gesture comprises motion ofan input unit; detecting, by the computing device, a surface area of aportion of the touch-sensitive display that is in contact with the inputunit; detecting, by the computing device, a change in the surface areaof the portion of the touch-sensitive display that is in contact withthe input unit; and when the change in the surface area is greater thanor equal to a minimum value and less than or equal to a maximum value,selecting as user input, by the computing device, the at least oneselectable object.
 17. The method of claim 16, further comprising: whenthe change in the surface area is less than the minimum value,refraining from selecting as user input, by the computing device, the atleast one selectable object.
 18. The method of claim 16, furthercomprising: when the change in the surface area is greater than themaximum value, refraining from selecting as user input, by the computingdevice, the at least one selectable object.
 19. The method of claim 16,wherein at least one of the minimum value or maximum value comprises asurface area value.
 20. The method of claim 16, further comprising:receiving a radius of the portion of the touch-sensitive display that isin contact with the input unit; and determining the surface area of theportion of the touch-sensitive display that is in contact with the inputunit based on the radius.
 21. The method of claim 16, wherein detectingthe change in the surface area of the portion of the touch-sensitivedisplay that is in contact with the input unit further comprisesdetermining a time duration of the change in the surface area.
 22. Themethod of claim 21, wherein determining the time duration of the changein the surface area further comprises: determining a first timeindicating a start of the change in the surface area; determining asecond time indicating an end of the change in the surface area; andcomparing the first time and the second time to determine the timeduration.
 23. The method of claim 21, further comprising: when the timeduration of the change in the surface area of the portion of thetouch-sensitive display that is in contact with the input unit isgreater than or equal to a minimum timeout value and less than or equalto a maximum timeout value, selecting as user input the at least oneselectable object.
 24. The method of claim 23, further comprising: whenthe time duration of the change in the surface area of the portion ofthe touch-sensitive display that is in contact with the input unit isless than the minimum timeout value, refraining from selecting as userinput the at least one selectable object.
 25. The method of claim 23,further comprising: when the time duration of the change in the surfacearea of the portion of the touch-sensitive display that is in contactwith the input unit is greater than the maximum timeout value,refraining from selecting as user input the at least one selectableobject.
 26. The method of claim 16, wherein detecting the change in thesurface area of the portion of the touch-sensitive display that is incontact with the input unit comprises detecting an increase in thesurface area of the portion of the touch-sensitive display that is incontact with the input unit, and wherein the method further comprises:detecting a subsequent decrease in the surface area of the portion ofthe touch-sensitive display that is in contact with the input unit. 27.A computer-readable storage medium encoded with instructions that causeone or more processors of a computing device to: display, by atouch-sensitive display of the computing device, at least one selectableobject; receive a user input comprising a gesture at a location of thetouch-sensitive display that displays the at least one selectableobject, wherein the gesture comprises motion of an input unit; detect asurface area of a portion of the touch-sensitive display that is incontact with the input unit; detect a change in the surface area of theportion of the touch-sensitive display that is in contact with the inputunit; and when the change in the surface area is greater than or equalto a minimum value and less than or equal to a maximum value, select asuser input the at least one selectable object.
 28. A computing device,comprising: one or more processors; a touch-sensitive display to displayat least one selectable object and receive a user input comprising agesture at a location of the touch-sensitive display that displays theat least one selectable object, wherein the gesture comprises motion ofan input unit; and an application installed on the computing device andoperable by the one or more processors to detect a surface area of aportion of the touch-sensitive display that is in contact with the inputunit, detect a change in the surface area of the portion of thetouch-sensitive display that is in contact with the input unit, and whenthe change in the surface area is greater than or equal to a minimumvalue and less than or equal to a maximum value, select as user inputthe at least one selectable object.